--- interact_link: content/lorentz1.ipynb kernel_name: python3 kernel_path: content has_widgets: false title: |- The Lorentz Transform pagenum: 1 prev_page: url: /README.html next_page: url: /rotation.html suffix: .ipynb search: pmatrix gamma begin end u quad x t space events reference c plot velocity light lorentz frac frame origin frames l where above observe want transformation change sqrt another effects move happens different same transform suppose built house set flash once hour standing sequence before position four vector defined y z while rm v relativity just here going along empty note next lines speed object point event observer moving relative also dilation clear curves again length contraction second original not occur visualising tranformation notebook basics vectors recall boost direction written new things simpler visualise ignore directions choose units equations become comment: "***PROGRAMMATICALLY GENERATED, DO NOT EDIT. SEE ORIGINAL FILES IN /content***" ---
The Lorentz Transform

Visualising the Lorentz Tranformation

In this notebook we want to look at the basics of the Lorentz transformation. To do this we will look at how position four vectors change as we change reference frames. Recall that the position four vector is defined as: $$x= \begin{pmatrix} c t \\ x \\ y \\ z \end{pmatrix} $$ while the Lorentz transformation $L(u)$ for a boost in the $x$ direction can be written as $$ L(u)=\begin{pmatrix} \gamma & -\gamma \frac{u}{c} & 0 & 0 \\ -\gamma \frac{u}{c} & \gamma & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} $$ where $$\gamma =\frac{1}{\sqrt{1- u^2}}$$ and $u$ is the velocity of the new frame.

Now to make things simpler to visualise we will ignore the $y$ and $z$ directions and choose units of time so that $c=1$. The equations above then become: $$ x =\begin{pmatrix} t \\ x \end{pmatrix} \quad {\rm and} \quad L(u)=\begin{pmatrix} \gamma & -\gamma u \\ -\gamma u & \gamma \end{pmatrix} $$

To go from one reference frame to another we simple calculate $L(u) v$. This gives: $$ \begin{pmatrix} t' \\ x' \end{pmatrix} = \begin{pmatrix} \gamma & -\gamma u \\ -\gamma u & \gamma \end{pmatrix} \begin{pmatrix} t \\ x \end{pmatrix} $$ or $$ t'=\gamma (t - u x) \quad {\rm and} x'=\gamma(x-u t) $$

Thus we can see that the mathematics of special relativity is trival. It is just multiplying a vector by a matrix. It is the consquences that are profund and counter-interative. Which is what we want to focus on here.

Space-Time

Space-time is the playground where we will explore the effects of relativity. The convention is to plot space-time with time going along the vertical axis. To see how this works we start with the usual Python libraries.

from modules import lorentz as lz
from modules.lorentz import lorentz

%load_ext autoreload
%autoreload 2
%matplotlib inline

Now we plot empty space:

lz.plot_empty_space()

Note much is going on there since it is just empty space. The next thing is to add a couple of lines that describe the speed of light. This is the light cone for an object at the origin.

lz.plot_light_cones()

Now as causality still applies in all reference frames the Lorentz transformation cannot move an object from one region (bound by red lines above) to another. We can now see what happens to different events when we view them from different reference frames.

The origin

The first point to consider is the origin. The is the space-time event: $$\begin{pmatrix} 0 \\ 0 \end{pmatrix} $$ which transforms as $$ \begin{pmatrix} \gamma & -\gamma u \\ -\gamma u & \gamma \end{pmatrix} \begin{pmatrix} 0 \\ 0 \end{pmatrix} \quad = \quad \begin{pmatrix} 0 \\ 0 \end{pmatrix} $$

So the origin is the same for all reference frames irrespective of their velocity. We can plot this easily enough

lz.plot_event_at_origin()

Transform of pure time like events.

Suppose now we built a light house at $x=0$ and set it to flash once a hour. If we are standing at $x=0$ we will observe a sequence of events: $$\begin{pmatrix} 0 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} 2 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} 3 \\ 0 \end{pmatrix} ... $$ Which we can plot as:

lz.plot_flashing_lighthouse()

So next we want to know what an observer moving at a different velocity will measure. This means calculating: Suppose now we built a light house at $x=$ and set it to flash once a hour. If we are standing at $x=0$ we will observe a sequence of events: $$\begin{pmatrix} \gamma & -\gamma u \\ -\gamma u & \gamma \end{pmatrix} \begin{pmatrix} 0 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} \gamma & -\gamma u \\ -\gamma u & \gamma \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} \gamma & -\gamma u \\ -\gamma u & \gamma \end{pmatrix} \begin{pmatrix} 2 \\ 0 \end{pmatrix}, \quad ... $$ For a fixed velocity $v$.

%%capture
ani = lz.animation_lorentz_1()
ani

In the graph above you can adjust the relative velocty from $-1<u<1$. As you change the value of the velocity you can see the dots move away from the origin and also to go to greater times. This is the effect of time dilation that we have learnt about in class.

We can see what happens to each point using the Lorentz transform. Starting with the event at time $t$ this gets transformed to: $$\begin{pmatrix} \gamma & -\gamma u \\ -\gamma u & \gamma \end{pmatrix} \begin{pmatrix} t \\ 0 \end{pmatrix} \quad = \quad \begin{pmatrix} \gamma t \\ -\gamma u \end{pmatrix} \quad = \begin{pmatrix} \frac{t}{\sqrt{1-u^2/c^2}} \\ -\frac{u t}{\sqrt{1-u^2/c^2}} \end{pmatrix} $$ where I have re-introduced $c$ to make it clear the effects of the speed of light. We can plot these as curves defined by $t(u)$ and $x(u)$. These are hyperbolae as we can see before.

%%capture
ani = lz.animation_with_hyperbolae()
ani

In the plot above we can now see that as expected the points move along the curves we calculated. And again the effects of time dilation are obvious.

Length Contraction

Suppose now we built a second light house at $x=1$ and set it to flash once a hour exactly in sync with the one at $x=0$. If we are standing at $x=0$ we will observe a sequence of events: $$\begin{pmatrix} 0 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} 2 \\ 0 \end{pmatrix}, \quad \begin{pmatrix} 3 \\ 0 \end{pmatrix} ... $$ from the original lighthouse and from the second we will observe: $$\begin{pmatrix} 0 \\ 1 \end{pmatrix}, \quad \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad \begin{pmatrix} 2 \\ 1 \end{pmatrix}, \quad \begin{pmatrix} 3 \\ 1 \end{pmatrix} ... $$

Note that this when and where the events happen in space-time not when an observer located somewhere in space-time will see them. Which we can plot these events as before:

lz.lighthouse()

Now as before we look at what happens when we transform to a frame moving at a velocity $u$ relative to the original one.

%%capture
ani = lz.animated_lighthouse()
ani

Here again length contraction can be clearly seen. It is also clear that while the events occur at the same time in the first reference frame they do not occur at the same time in any other reference frame.

SImultaneity

This is another tricky topic we should try to address.